# 在实际应用的场景中，当我们采用上面的方式写了两个装饰方法比如先验证有没有登录
# @login_required ， 再验证权限够不够时 @permision_allowed
import re
name = input("请输入用户名:")
passwd = input("请输入你的密码:")
#正则来检测用户名和密码是否符合标准
list1 = re.findall("^\w{4,}$",name)
list2 = re.findall("^.*\w{8,}[^\w]+.*$",passwd)


def login_required(func):
    def _check(*args):
        if list1 != [] and list2 != []:
            print("登陆成功")
            ret = func(*args)
            return ret
        else:
            print("没有登陆成功")
    return _check

def permission_allowed(func):
    def power(*args):
        if name == "root":
            print("权限足够")
            ret = func(*args)
            return ret
        else:
            print("权限不够")
    return power

@login_required
@permission_allowed
def add(x,y):
    print("使用加法运算")
    return x + y
sum = add(10,20)
print("加法运算的最终结果为{}".format(sum))
